package co.edu.usbcali.unidades.presentation.backingBeans;



import java.util.ArrayList;
import java.util.List;

import javax.faces.event.ValueChangeEvent;


import co.edu.usbcali.unidades.exceptions.ZMessManager;
import co.edu.usbcali.unidades.modelo.Administrador;
import co.edu.usbcali.unidades.modelo.PropietarioInmueble;
import co.edu.usbcali.unidades.modelo.UnidadResidencial;
import co.edu.usbcali.unidades.modelo.Usuario;
import co.edu.usbcali.unidades.presentation.businessDelegate.BusinessDelegatorView;
import co.edu.usbcali.unidades.utilities.FacesUtils;

import com.icesoft.faces.component.ext.HtmlInputText;

public class InicioView {
	
	private HtmlInputText txtLogin;
	private HtmlInputText txtPassword;
	
	
	public String action_iniciarSesion() throws Exception {
		return iniciarSesion();
	}
	
	/*public void action_iniciarSesionEvent(ValueChangeEvent event){
		iniciarSesion();
	}*/
	
	private String iniciarSesion(){
		String mensaje="";
		//Administrador admin;
		//PropietarioInmueble prop;
		try {
			String txtUsu = FacesUtils.checkString(txtLogin);
			String txtCon = FacesUtils.checkString(txtPassword);
			
			
			List<Usuario> u = BusinessDelegatorView.getUsuarioParametro(txtUsu, txtCon);
			
			//admin=BusinessDelegatorView.getAdministradorCedula(u.get(0).getPersona().getPerCedula());
			//prop=BusinessDelegatorView.getPropietarioCedula(u.get(0).getPersona().getPerCedula());
			
			if(u.size()!= 0 ){
				Usuario usu = u.get(0);
				if (usu.getTipoUsuario().getTpuCodigo().equals("1")){
					 String codpro = "";					
					 codpro = action_darCodigo(usu.getPersona().getPerCedula());
					 FacesUtils.getSession().setAttribute("codPro", codpro);
					 mensaje = "goToPropietario";
				}else if(usu.getTipoUsuario().getTpuCodigo().equals("2")){
					mensaje = "goToAdmin1";
				}else if(usu.getTipoUsuario().getTpuCodigo().equals("3")){
					mensaje = "goToArrendatario";
				}else if(usu.getTipoUsuario().getTpuCodigo().equals("4")){
					mensaje = "goToVigilante";
				}else if(usu.getTipoUsuario().getTpuCodigo().equals("5")){					
					String codAdmin="";
					codAdmin= codigoAdmin(usu.getPersona().getPerCedula());					
					FacesUtils.getSession().setAttribute("codAdminLoc", codAdmin);
					List<UnidadResidencial> unidades=BusinessDelegatorView.getUnidadesAdmin(codAdmin);
					FacesUtils.getSession().setAttribute("unidadNit", unidades.get(0).getUnrNit());
					mensaje = "goToAdmin2";
				
				}
				
				FacesUtils.getSession().setAttribute("usuario", usu);			
		}
		}catch (Exception e) {
			FacesUtils.addErrorMessage(e.getMessage());			
		}
		return mensaje;
	}
	
	public String action_cerrarSesion()throws Exception{
		
		FacesUtils.getSession().invalidate();		
		//FacesUtils.getSession();
				
		return "goInicio";
	}
	
	//Metodo que consulta el codigo del administrador local....
	public String codigoAdmin(String usuCedula)throws Exception{
		String codAdmin="";
		try {
		codAdmin= BusinessDelegatorView.getCodigoAdmin(usuCedula);
		} catch (Exception e) {
			throw e;
		}
		return codAdmin;
	}
	
	//Pide El Codigo del PropietarioInmueble	
	public String action_darCodigo(String usuCedula) throws Exception {
		String codigo="";
		try {						
			codigo = BusinessDelegatorView.getUsuarioParametro2(usuCedula);			
		} catch (Exception e) {
			throw e;
		}
		return codigo;
	}

	public HtmlInputText getTxtLogin() {
		return txtLogin;
	}


	public void setTxtLogin(HtmlInputText txtLogin) {
		this.txtLogin = txtLogin;
	}

	public HtmlInputText getTxtPassword() {
		return txtPassword;
	}


	public void setTxtPassword(HtmlInputText txtPassword) {
		this.txtPassword = txtPassword;
	}
	
}
